Adjust the argument counts for a MESSAGE_PARAMETER_COUNT_MISMATCH to account for
authorEwan Mellor <ewan@xensource.com>
Mon, 25 Dec 2006 14:32:41 +0000 (14:32 +0000)
committerEwan Mellor <ewan@xensource.com>
Mon, 25 Dec 2006 14:32:41 +0000 (14:32 +0000)
the fact that XenAPI adds the session handle transparently.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
tools/python/xen/xm/XenAPI.py

index b45249e7eca17552a510708a53e042934a7d267b..a8cfce875139c1addf3406dd8dc56b3a8a943554 100644 (file)
@@ -54,7 +54,17 @@ gettext.install('xen-xm')
 
 class Failure(Exception):
     def __init__(self, details):
-        self.details = details
+        try:
+            # If this failure is MESSAGE_PARAMETER_COUNT_MISMATCH, then we
+            # correct the return values here, to account for the fact that we
+            # transparently add the session handle as the first argument.
+            if details[0] == 'MESSAGE_PARAMETER_COUNT_MISMATCH':
+                details[2] = str(int(details[2]) - 1)
+                details[3] = str(int(details[3]) - 1)
+
+            self.details = details
+        except Exception, exn:
+            self.details = ['INTERNAL_ERROR', 'Client-side: ' + str(exn)]
 
     def __str__(self):
         try: